#pragma once

#if (defined(WIN32) || defined(_WIN64))
#include <WinSock2.h>
#include <cstdint>
#include <cstdlib>
using SocketType = SOCKET;
using SocketAddress = struct sockaddr_in;
#else
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <sys/time.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netdb.h>
#include <unistd.h>
#include <string.h>
#include <errno.h>
#include <time.h>
using SocketType = int;
using SocketAddress = struct sockaddr_in;
constexpr static int INVALID_SOCKET = -1;
#endif // (defined(WIN32) || defined(_WIN64))

enum class UdpType {
    Unknown,
    Acceptor = 1,
    Connector,
    Remote,
};
